package com.example.syyao.myapp.Tool;



import android.content.Context;
import android.os.Environment;

import android.support.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.Registry;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.module.GlideModule;

/**
 * setMemoryCache()
 * 用于配置Glide的内存缓存策略，默认配置是LruResourceCache。
 * <p>
 * setBitmapPool()
 * 用于配置Glide的Bitmap缓存池，默认配置是LruBitmapPool。
 * <p>
 * setDiskCache()
 * 用于配置Glide的硬盘缓存策略，默认配置是InternalCacheDiskCacheFactory。
 * <p>
 * setDiskCacheService()
 * 用于配置Glide读取缓存中图片的异步执行器，默认配置是FifoPriorityThreadPoolExecutor，
 * 也就是先入先出原则。
 * <p>
 * setResizeService()
 * 用于配置Glide读取非缓存中图片的异步执行器，默认配置也是FifoPriorityThreadPoolExecutor。
 * <p>
 * setDecodeFormat()
 * 用于配置Glide加载图片的解码模式，默认配置是RGB_565。
 */

public class MyGlide implements GlideModule {

    public static final int DISK_CACHE_SIZE = 500 * 1024 * 1024;

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {

        String path = Environment.getExternalStorageDirectory().getPath() + "/MyImage/Cache";
        builder.setDiskCache(new DiskLruCacheFactory(path, DISK_CACHE_SIZE));
    }

    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {

    }
}